<?php

/**
 * This is the model class for table "historico".
 *
 * The followings are the available columns in table 'historico':
 * @property integer $id
 * @property string $tipo
 * @property integer $id_entity
 * @property string $data
 * @property string $observacao
 */
class Historico extends CActiveRecord
{
	public static $tipos = array(
			'Turma'=>'Turma',
			'Aula' => 'Aula',
			'AvaliacaoDiaria' => 'AvaliacaoDiaria',
			'Aluno' => 'Aluno',
			'Matricula' => 'Matricula',
			'Plano' => 'Plano',
			'Avaliacao' => 'Avaliacao',
	);
	
	public static $acoes = array (
			'Edição' => 'Edição',
			'Criação' => 'Criação',
			'Matrícula' => 'Matrícula',
			'Remoção' => 'Remoção',
			'Rotação' => 'Rotação',
			'UpdateResponsavel' => 'UpdateResponsavel',
	);
	
	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'historico';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('id_entity', 'required'),
			array('id_entity', 'numerical', 'integerOnly'=>true),
			array('tipo, observacao', 'length', 'max'=>250),
			array('data', 'safe'),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('id, tipo, id_entity, data, observacao', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'tipo' => 'Tipo',
			'id_entity' => 'Id Entity',
			'data' => 'Data',
			'observacao' => 'Observacao',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id);
		$criteria->compare('tipo',$this->tipo,true);
		$criteria->compare('id_entity',$this->id_entity);
		$criteria->compare('data',$this->data,true);
		$criteria->compare('observacao',$this->observacao,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Historico the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}
